package com.imooc.service;

import com.imooc.pojo.BO.AddressBO;
import com.imooc.pojo.UserAddress;

import java.util.List;

/**
 * @author lihongyu
 * @CreateTime 2021-10-18 14:58
 * @Description 收获地址业务逻辑接口
 */
public interface AddressService {

    /**
     * 查询用户所有收货地址
     *
     * @param userId 用户Id
     * @return 用户所有收货地址
     */
    List<UserAddress> queryAllAddressList(String userId);

    /**
     * 新增收货地址
     *
     * @param addressBO 新增收货地址参数封装实体
     * @return boolean 成功/失败
     */
    boolean addUserAddress(AddressBO addressBO);

    /**
     * 修改收货地址
     *
     * @param addressBO 修改收货地址参数封装实体
     * @return boolean 成功/失败
     */
    boolean updateUserAddress(AddressBO addressBO);

    /**
     * 删除用户收货地址
     *
     * @param userId 用户ID
     * @param addressId 地址Id
     * @return boolean 成功/失败
     */
    boolean deleteUserAddress(String userId, String addressId);

    /**
     * 设置用户收货地址为默认收货地址
     *
     * @param userId 用户ID
     * @param addressId 地址Id
     * @return boolean 成功/失败
     */
    boolean setDefaultUserAddress(String userId, String addressId);

    /**
     * 根据用户id与地址id查询用户地址信息
     *
     * @param userId 用户id
     * @param addressId 地址id
     * @return 用户地址信息
     */
    UserAddress queryUserAddress(String userId, String addressId);
}
